AddMediaSampleReference
TheAddMediaSampleReference
function allows your application to work with samples that have already been added to a movie data file. Instead of actually writing out samples to disk, this function writes out references to existing samples, which you specify in thedataOffset
andsize
parameters.
pascal OSErr AddMediaSampleReference (Media theMedia, long dataOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime);
theMedia
- Specifies the media for this operation. Your application obtains this media identifier from such Movie Toolbox functions as
NewTrackMedia
andGetTrackMedia
(described on page 2-138 and page 2-190, respectively).dataOffset
Specifies the offset into the movie data file. This parameter is used differently by each data handler. For example, for the standard HFS data handler, this parameter specifies the offset into the file. This parameter contains either data you add yourself or the data offset returned by theGetMediaSampleReference
function (described on page 2-262).size
- Specifies the number of bytes of sample data to be identified by the reference. This parameter indicates the total number of bytes in the sample data, not the number of bytes per sample. Use the
numberOfSamples
parameter to indicate the number of samples that are contained in the reference.durationPerSample
- Specifies the duration of each sample in the reference. You must specify this parameter in the media's time scale. For example, if you are referring to sound that was sampled at 22 kHz in a media that contains a sound track with the same time scale, to add a reference to a single sample you would set the
durationPerSample
parameter to 1. Similarly, if you are referring to video that was recorded at 10 frames per second in a video media that has a time scale of 60, you would set this parameter to 6 to add a reference to a single sample.sampleDescriptionH
- Contains a handle to a sample description. Some media structures may require sample descriptions. There are different sample descriptions for different types of samples. For example, a media that contains compressed video requires that you supply an image description (see the chapter "Image Compression Manager" in this book for more information about image description structures). A media that contains sound requires that you supply a sound description structure (see "The Sound Description Structure" on page 2-68 for more information about
sound description structures).- If the media does not require a sample description, set this
parameter tonil
.numberOfSamples
- Specifies the number of samples contained in the reference. For details, see the
AddMediaSample
function description beginning on page 2-256.sampleFlags
- Contains flags that control the operation. The following flag is available (set unused flags to 0):
mediaSampleNotSync
- Indicates that the sample to be added is not a sync sample. Set this flag to 1 if the sample is not a sync sample. Set this flag to 0 if the sample is a sync sample.
sampleTime
Contains a pointer to a time value. After adding the reference to the media, theAddMediaSampleReference
function returns the time where the reference was inserted in the time value referred to by
this parameter. If you do not want to receive this information, set this parameter tonil
.DESCRIPTION
TheAddMediaSampleReference
function does not add sample data to the file or device that contains a media. Rather, it defines references to sample data that you previously added to a movie data file. As with theAddMediaSample
function (described in the previous section), your application specifies the media for the operation. Note that one reference may refer to more than one sample--all the samples described by a reference must be the same size. This function does not update the movie data file as part of the add operation. Therefore, your application does not have to call theBeginMediaEdits
function (described on page 2-255) before callingAddMediaSampleReference
.ERROR CODES
Memory Manager errors
invalidMedia -2008 This media is corrupted or invalid SEE ALSO
If you want to add new samples to a media data file, use theAddMediaSample
function, which is described in the previous section.